// news详情页
var postData = require('../../../data/posts-data.js');
var app = getApp();
Page({
  data: {
    // true是音乐为正播放状态,false为等待播放
    isPlay: false
  },
  onLoad: function(options) {
    var id = options.id,
      thisData = postData.postList[id],
      storeStatus = wx.getStorageSync('curSituation'),
      key = 'collect' + id,
      curSituation = {};
    // 当前页收藏情况不在存储中的状态，设置当前页默认未收藏，无存储数据用curSituation新建作为临时显示数据
    if (storeStatus) {
      storeStatus[key] = storeStatus[key] || false;
      curSituation = storeStatus;
    } else {
      curSituation[key] = false
    }
    // 将列表数据、收藏状态和当前列表的id传入data
    this.setData({
      content: thisData,
      curSituation: curSituation,
      curId: id
    });
    // 音乐播放对象
    var getMusicObj = wx.getBackgroundAudioManager(),
      that = this;
    // 监听音乐暂停功能,暂停更改为播放按钮
    getMusicObj.onPause(function() {
      that.setReadyOrStop()
    });
    // 监听音乐关闭功能
    getMusicObj.onStop(function() {
      that.setReadyOrStop()
    });
    // 监听音乐播放功能,播放设置为暂停按钮
    getMusicObj.onPlay(function() {
      that.setReadyOrStop('ready')
      that.setPlay();
    });
    getMusicObj.onEnded(function() {
      that.setReadyOrStop()
    });
    // 获取全局中正在播放的音乐Id编号和目前正停留的音乐播放器所在页面id
    var curPlayId = app.g_curPlayId,
      curId = this.data.curId;
    // 存在正播放记录，且正播放和需显示播放状态的页面一致，设置播放点击暂停状态,不一致更改全局变量
    // 无缓存则不做处理
    if (curPlayId !== '') {
      if (curPlayId == curId) {
        this.setData({
          isPlay: true
        })
      }
    }
  },
  // 更改收藏图片显示
  onToggleStatus: function(e) {
    var that = this.data,
      type = e.target.dataset.name;
    if (type !== 'collect') {
      this.share()
      return
    }
    // 更改的属性值加编号
    var name = type + this.data.curId,
      // data中的目前的收藏状态数据
      val = this.data.curSituation,
      state = !this.data.curSituation[name];
    // 状态取反
    val[name] = state;
    // 更改data的值和修改缓存，点击切换收藏和分享点亮，true为点亮状态
    this.setData({
      curSituation: val
    });
    wx.setStorageSync('curSituation', val);
    // 根据用户收藏与否给出toast提示
    var res = state ? '添加' : '取消';
    this.showToast(res);
  },
  // 显示toast提示
  showToast: function(res) {
    wx.showToast({
      title: res + '收藏成功',
      icon: 'success',
      duration: 2000
    })
  },
  // 分享文章
  share: function() {
    wx.showActionSheet({
      itemList: ['分享到朋友圈', '分享给微信好友', '分享给qq好友', '分享到qq空间'],
      success(res) {
        console.log(res.tapIndex)
      },
      fail(res) {
        console.log(res.errMsg)
      }
    })
  },
  // 点击音乐按钮
  onTapMusic: function() {
    var isPlay = this.data.isPlay;
    var getMusicObj = wx.getBackgroundAudioManager();
    // 如果为等待播放按钮，开始进行播放设置，保存id
    // 如果为正在播放状态，进行暂停音乐，清除id
    if (!isPlay) {
      this.setPlay();
      // 全局保存歌曲页面id
      app.g_curPlayId = this.data.curId;
    } else {
      getMusicObj.pause();
      app.g_curPlayId = null;
    }
    // true为当前按钮为正在播放点击暂停键
    // 开始按钮切换为暂停按钮更改保存的状态，反之亦然
    this.setData({
      isPlay: !isPlay
    })
  },
  // 设置对应的音乐链接和封面数据
  setPlay: function(oMusicData) {
    var oMusicData = this.data.content.music;
    wx.playBackgroundAudio({
      dataUrl: oMusicData.url,
      title: oMusicData.title,
      coverImgUrl: oMusicData.coverImg
    })
  },
  // 点击开始播放的样式配置
  // flag为undefined则为设置暂停或结束播放，'ready'则设置为播放状态
  setReadyOrStop: function(flag) {
    var that = this,
    isPlay = false,
    id = null;
    // 如果是开始播放
    if (flag === 'ready') {
      isPlay = !isPlay;
      id = that.data.curId;
    }
    // 更改当前页面中的data播放按钮状态属性
    that.setData({
      isPlay: isPlay
    })
    // 如果是播放全局保存歌曲页面id，暂停则清空全局保存的id
    app.g_curPlayId = id;
  }
})